[DEFAULT]
log_dir = /var/log/trove
trove_auth_url = http://{{ API_VIP }}:5000/v2.0
nova_compute_url = http://{{ API_VIP }}:8774/v2
cinder_url = http://{{ API_VIP }}:8776/v1
# swift_url = http://{{ API_VIP }}:8080/v1/AUTH_
notifier_queue_hostname = {{ API_VIP }}


auth_strategy = keystone
add_addresses = True
network_label_regex = ^NETWORK_LABEL$
api_paste_config = /etc/trove/api-paste.ini

rpc_backend = rabbit 
bind_host = {{ ansible_hostname }}
bind_port = 8779
verbose = True
debug = True

# Show more verbose log output (sets INFO log level output)
# verbose = True

# Show debugging output in logs (sets DEBUG log level output)
# debug = True

# Address to bind the API server
# bind_host = {{ ansible_hostname }}

# Port the bind the API server to
# bind_port = 8779

# Number of workers for the API service. The default will
# be the number of CPUs available. (integer value)
#trove_api_workers=None

#===================== RPC Configuration =================================

# URL representing the messaging driver to use and its full configuration.
# If not set, we fall back to the 'rpc_backend' option and driver specific
# configuration.
#transport_url=<None>

# The messaging driver to use. Options include rabbit, qpid and zmq.
# Default is rabbit. (string value)
#rpc_backend=rabbit

# The default exchange under which topics are scoped. May be
# overridden by an exchange name specified in the 'transport_url option.
control_exchange = trove

# ==================== RabbitMQ Configuration =======================


rabbit_host = {{ API_VIP }}
rabbit_userid = openstack
rabbit_password = {{ RABBIT_PASS }} 

# The RabbitMQ broker address where a single node is used.
# (string value)
#rabbit_host=localhost

# The RabbitMQ broker port where a single node is used.
# (integer value)
#rabbit_port=5672

# RabbitMQ HA cluster host:port pairs. (list value)
#rabbit_hosts=$rabbit_host:$rabbit_port

# Connect over SSL for RabbitMQ. (boolean value)
#rabbit_use_ssl=false

# The RabbitMQ userid. (string value)
#rabbit_userid=guest

# The RabbitMQ password. (string value)
# rabbit_password=f7999d1955c5014aa32c

# The RabbitMQ virtual host. (string value)
#rabbit_virtual_host=/

# Maximum line size of message headers to be accepted.
# max_header_line may need to be increased when using large tokens
# (typically those generated by the Keystone v3 API with big service
# catalogs)
# max_header_line = 16384

#DB Api Implementation
db_api_implementation = "trove.db.sqlalchemy.api"

# Configuration options for talking to nova via the novaclient.
# trove_auth_url = http://0.0.0.0:5000/v2.0
#nova_compute_url = http://localhost:8774/v2
#cinder_url = http://localhost:8776/v1
#swift_url = http://localhost:8080/v1/AUTH_
#neutron_url = http://localhost:9696/

# nova_compute_url, cinder_url, swift_url, and heat_url can all be fetched
# from Keystone. To fetch from Keystone, comment out nova_compute_url,
# cinder_url, swift_url, and heat_url and optionally uncomment the lines below.

# Region name of this node. Used when searching catalog. Default value is None.
#os_region_name = RegionOne
# Service type to use when searching catalog.
#nova_compute_service_type = compute
# Service type to use when searching catalog.
#cinder_service_type = volumev2
# Service type to use when searching catalog.
#swift_service_type = object-store
# Service type to use when searching catalog.
#heat_service_type = orchestration
# Service type to use when searching catalog.
#neutron_service_type = network

# Config option for showing the IP address that nova doles out
# For nova-network, set this to the appropriate network label defined in nova
# For neutron, set this to .* since users can specify custom network labels
# You can also optionally specify regex'es to match the actual IP addresses
# ip_regex (white-list) is applied before black_list_regex in the filter chain
network_label_regex = ^private$
#network_label_regex = .* //with neutron enabled
#ip_regex = ^(15.|123.)
#black_list_regex = ^10.0.0.

# Config options for enabling volume service
trove_volume_support = True
block_device_mapping = vdb
device_path = /dev/vdb
# Maximum volume size for an instance
max_accepted_volume_size = 10
max_instances_per_user = 5
# Maximum volume capacity (in GB) spanning across all trove volumes per tenant
max_volumes_per_user = 100
max_backups_per_user = 5
volume_time_out=30

# Config options for rate limits
http_get_rate = 200
http_post_rate = 200
http_put_rate = 200
http_delete_rate = 200
http_mgmt_post_rate = 200

# Trove DNS
trove_dns_support = False
dns_account_id = 123456
dns_auth_url = http://{{ API_VIP }}:5000/v2.0
dns_username = user
dns_passkey = password
dns_ttl = 3600
dns_domain_name = 'trove.com.'
dns_domain_id = 11111111-1111-1111-1111-111111111111
dns_driver = trove.dns.designate.driver.DesignateDriver
dns_instance_entry_factory = trove.dns.designate.driver.DesignateInstanceEntryFactory
dns_endpoint_url = http://{{ API_VIP }}/v1/
dns_service_type = dns

# Neutron
network_driver = trove.network.nova.NovaNetwork
default_neutron_networks =


# Taskmanager queue name
taskmanager_queue = taskmanager

# Auth
admin_roles = admin

# Users to ignore for user create/list/delete operations
ignore_users = os_admin, root
ignore_dbs = lost+found, mysql, information_schema

# Guest related conf
agent_heartbeat_time = 10
agent_call_low_timeout = 5
agent_call_high_timeout = 150

# Reboot time out for instances
reboot_time_out = 60

# Trove api-paste file name
api_paste_config = api-paste.ini
log_file = /var/log/trove/trove.log


# ============ Notification System configuration ===========================

# Sets the notification driver used by oslo.messaging. Options include
# messaging, messagingv2, log and routing. Default is 'noop'
# notification_driver=noop

# Topics used for OpenStack notifications, list value. Default is 'notifications'.
# notification_topics=['notifications', ]

# ============ Logging information =============================
#log_dir = /integration/report
#log_file = trove-api.log




[keystone_authtoken]
auth_uri = http://{{ API_VIP }}:5000
auth_url = http://{{ API_VIP }}:35357
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = trove
password = {{ TROVE_PASS }}


[database]

# SQLAlchemy connection string for the reference implementation
# registry server. Any valid SQLAlchemy connection string is fine.
# See: http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine
# connection = sqlite:///trove_test.sqlite
connection = mysql://trove:{{ TROVE_DBPASS }}@{{ API_VIP }}/trove
#connection = postgresql://trove:trove@localhost/trove

# Period in seconds after which SQLAlchemy should reestablish its connection
# to the database.
#
# MySQL uses a default `wait_timeout` of 8 hours, after which it will drop
# idle connections. This can result in 'MySQL Gone Away' exceptions. If you
# notice this, you can lower this value to ensure that SQLAlchemy reconnects
# before MySQL can drop the connection.
idle_timeout = 3600



# ============ SSL configuration (and enablement) =============================
# In order to enable SSL for the trove api server, uncomment
# the cert_file and key_file - and of course have those files
# accessible. The existence of those setting and files will
# enable SSL.

[profiler]
# If False fully disable profiling feature.
#enabled = False
# If False doesn't trace SQL requests.
#trace_sqlalchemy = True

[ssl]

#cert_file = /path/to/server.crt
#key_file = /path/to/server.key
#optional:
#ca_file = /path/to/ca_file

[mysql]
root_on_create = False
# Format (single port or port range): A, B-C
# where C greater than B
tcp_ports = 3306
volume_support = True
device_path = /dev/vdb

[redis]
tcp_ports = 6379
#redis uses local storage
volume_support = False
# default device_path = None

[cassandra]
tcp_ports = 7000, 7001, 9042, 9160
volume_support = True
device_path = /dev/vdb

[couchbase]
tcp_ports = 8091, 8092, 4369, 11209-11211, 21100-21199
volume_support = True
device_path = /dev/vdb

[mongodb]
tcp_ports = 2500, 27017
volume_support = True
device_path = /dev/vdb
num_config_servers_per_cluster = 1
num_query_routers_per_cluster = 1

[vertica]
tcp_ports = 5433, 5434, 22, 5444, 5450, 4803
udp_ports = 5433, 4803, 4804, 6453
volume_support = True
device_path = /dev/vdb
cluster_support = True
cluster_member_count = 3
api_strategy = trove.common.strategies.cluster.experimental.vertica.api.VerticaAPIStrategy
